<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>组件学习</title>
    <!-- 引入 elementUI 样式 -->
    <link rel="stylesheet" href="../js/element-ui-2.13.0/lib/theme-chalk/index.css">
    <!-- 引入 vue 的js文件： elementUI基于Vue开发，必须在elementUI的js文件之前引入 -->
    <script src="../js/vue.js"></script>
    <!-- 引入elementUI 组件库 -->
    <script src="../js/element-ui-2.13.0/lib/index.js"></script>
</head>
<body>
    <div id="app" >
        <!-- 在此输入elementUI组件代码 -->
        <!--
                :model: 引入vue中的 ruleForm 数据
                :rules： 引入规则 rules
            -->
        <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
            <!--
                prop="name" 引用规则中的name规则， 该属性必须配置
                v-model="ruleForm.name": 双向绑定
            -->
            <el-form-item label="活动名称" prop="name">
                <el-input v-model="ruleForm.name"></el-input>
            </el-form-item>
            <el-form-item label="活动区域" prop="region">
                <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
                    <el-option label="区域一" value="shanghai"></el-option>
                    <el-option label="区域二" value="beijing"></el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="活动时间" required>
                <el-col :span="11">
                    <el-form-item prop="date1">
                        <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.date1" style="width: 100%;"></el-date-picker>
                    </el-form-item>
                </el-col>
                <el-col class="line" :span="2">-</el-col>
                <el-col :span="11">
                    <el-form-item prop="date2">
                        <el-time-picker placeholder="选择时间" v-model="ruleForm.date2" style="width: 100%;"></el-time-picker>
                    </el-form-item>
                </el-col>
            </el-form-item>
            <el-form-item label="即时配送" prop="delivery">
                <el-switch v-model="ruleForm.delivery"></el-switch>
            </el-form-item>
            <el-form-item label="活动性质" prop="type">
                <el-checkbox-group v-model="ruleForm.type">
                    <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
                    <el-checkbox label="地推活动" name="type"></el-checkbox>
                    <el-checkbox label="线下主题活动" name="type"></el-checkbox>
                    <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
                </el-checkbox-group>
            </el-form-item>
            <el-form-item label="特殊资源" prop="resource">
                <el-radio-group v-model="ruleForm.resource">
                    <el-radio label="线上品牌商赞助"></el-radio>
                    <el-radio label="线下场地免费"></el-radio>
                </el-radio-group>
            </el-form-item>
            <el-form-item label="活动形式" prop="desc">
                <el-input type="textarea" v-model="ruleForm.desc"></el-input>
            </el-form-item>
            <el-form-item>
                <!--点击按钮，调用 submitForm    ruleForm ： 参数为表单的ref值 -->
                <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
                <!--点击按钮，调用 resetForm -->
                <el-button @click="resetForm('ruleForm')">重置</el-button>
            </el-form-item>
        </el-form>
    </div>
</body>

<script type="text/javascript">
    //elementUI 基于vue2.0开发，所有elementUI组件必须在vue的管理区域。
    var vue = new Vue({
        el: "#app",
        data:{
            ruleForm: {
                name: '',
                region: '',
                date1: '',
                date2: '',
                delivery: false,
                type: [],
                resource: '',
                desc: ''
            },
            rules: {
                //name规则，上表单中使用prop属性关联
                //required：true， 必填项
                //message: 不满足规则的提示消息
                //trigger: 触发条件  blur ：失去焦点   change ： 改变
                name: [
                    {required: true, message: '请输入活动名称', trigger: 'blur'},
                    {min: 5, max: 10, message: '长度在 5 到 10 个字符', trigger: 'blur'}
                ],
                region: [
                    {required: true, message: '请选择活动区域', trigger: 'change'}
                ],
                //type:数据的类型  date: 日期类型    array ： 多选框，数组类型
                date1: [
                    {type: 'date', required: true, message: '请选择日期', trigger: 'change'}
                ],
                date2: [
                    {type: 'date', required: true, message: '请选择时间', trigger: 'change'}
                ],
                type: [
                    {type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change'}
                ],
                resource: [
                    {required: true, message: '请选择活动资源', trigger: 'change'}
                ],
                desc: [
                    {required: true, message: '请填写活动形式', trigger: 'blur'}
                ]
            }
        },
        methods: {
            submitForm(formName) {
                // formName :参数值  ruleForm
                //this.$refs[formName]:根据表单的ref值获取表单对象
                //validate: 校验表单的数据
                //valid: 表单校验的结果  ，校验成功：true  校验失败：false
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        alert('submit!');
                    } else {
                        console.log('error submit!!');
                        return false;
                    }
                });
            },
            resetForm(formName) {
                //清空表单数据和校验数据
                this.$refs[formName].resetFields();
            }
        }
    });
</script>
</html>